﻿<!--*************************************************************************************

   Toolkit for WPF

   Copyright (C) 2007-2016 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license 

   For more features, controls, and fast professional support,
   pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/

   Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids

  ***********************************************************************************-->
<local:DemoView x:Class="Xceed.Wpf.Toolkit.LiveExplorer.Samples.BusyIndicator.Views.BusyIndicatorView"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.LiveExplorer.Samples.BusyIndicator.Converters"
                 xmlns:local="clr-namespace:Xceed.Wpf.Toolkit.LiveExplorer"
                 xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
                 Title="BusyIndicator">
    <local:DemoView.Description>
        <Paragraph FontSize="14" FontFamily="Segoe">
            BusyIndicator makes it easy to let the user know when an application is busy. Simply wrap the relevant content in an instance of the BusyIndicator control and toggle its IsBusy property to True during any long-running process.
        </Paragraph>
    </local:DemoView.Description>

   <local:DemoView.Resources>
      <ResourceDictionary>
         <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Resources/Common.xaml" />
         </ResourceDictionary.MergedDictionaries>
         <conv:IntegerToTimespanConverter x:Key="TimeSpanConverter" />
      </ResourceDictionary>
   </local:DemoView.Resources>

   <Grid>

      <Grid.RowDefinitions>
         <RowDefinition Height="Auto" />
         <RowDefinition Height="*" />
      </Grid.RowDefinitions>


      <GroupBox Header="Features" Grid.Row="0" Margin="5">
         <Grid Margin="5">
            <Grid.RowDefinitions>
               <RowDefinition Height="Auto" />
               <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
               <ColumnDefinition Width="Auto" />
               <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <TextBlock Text="IsBusy:" VerticalAlignment="Center" Margin="2" />
            <CheckBox x:Name="_isBusy" Grid.Column="1" IsChecked="True" VerticalAlignment="Center" Margin="5" ToolTip="When true shows the BusyIndicator" />

            <TextBlock Text="DisplayAfter:" Grid.Row="1" VerticalAlignment="Center" Margin="2" />
            <StackPanel Grid.Row="1" Grid.Column="1" Margin="5" HorizontalAlignment="Left" Orientation="Horizontal">
               <xctk:IntegerUpDown x:Name="_displayAfter" Width="65" VerticalAlignment="Center" Minimum="0" Increment="100" Text="0" DefaultValue="0" ToolTip="Sets the TimeSpan to wait until the BusyIndicator is displayed." />
               <TextBlock Text="milliseconds" Margin="5,0"  VerticalAlignment="Center" />
            </StackPanel>
         </Grid>
      </GroupBox>

      <StackPanel Grid.Row="1" Margin="10">
         <TextBlock Text="Usage:" Style="{StaticResource Header}" />
         <xctk:BusyIndicator IsBusy="{Binding IsChecked, ElementName=_isBusy}" DisplayAfter="{Binding Value, ElementName=_displayAfter, Converter={StaticResource TimeSpanConverter}}">
            <ContentControl ContentTemplate="{StaticResource SampleContent}" />
         </xctk:BusyIndicator>
      </StackPanel>
   </Grid>
</local:DemoView>
